Linux存在缺陷 Sudo用户可获根权限
影响Sudo解析tty信息方式的一个漏洞可导致用户获取根权限并覆写SELinux系统上文件系统中的任意文件。
这个漏洞的编号为CVE-2017-1000367,是由Qualys安全公司在Linux版本的Sudo的get_process_ttyname()中发现的。这个问题在于Sudo解析来自proc文件系统中进程状态文件tty信息的方式。
这个漏洞可被拥有通过Sudo执行命令权限的本地用户利用,并导致用户将权限升级为根权限。这个漏洞的CVSS3评分为7.8,属于高危级别。
Qualys安全公司在安全公告中指出,Sudo的get_process_ttyname()函数打开”/proc/[pid]/stat”并从第7个字段 (tty_nr) 中读取tty的设备号。尽管这些字段是用空格分隔的,但第2个字段 (comm, the filename of the command) 可能包含空格。这样,SELinux系统的Sudoer用户就能够升级权限用命令输出来覆写文件系统上的任意文件,包括根文件在内。
要成功利用这个漏洞,Sudo用户必须选择一个不存在”/dev”下的设备号码。因为如果终端不存在于/dev/ pts目录下,那么Sudo会执行宽度优先的/dev搜索,用户就能在两个搜索器之间分配一个伪终端并“在/dev下如/dev/shm的全域可写目录为新创建的设备创造一个符号链接”。当SELinux的一个角色在sudo命令行中规定时,攻击者随后会使用该文件作为命令的标准输入、输出和错误。如果该符号链接在Sudo打开它之前被另外一个文件所替换,那么通过写入标准输出或标准错误就能覆写任意文件。
该问题影响1.8.6p7至1.8.20的所有Sudo版本,并已在Sudo版本1.8.20p1中修复。
本文由360代码卫士编译,不代表360观点,转载请注明“转自360代码卫士www.codesafe.cn”。